<!DOCTYPE html>
<html>
<head>
    <!-- 页面meta -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>传智健康</title>
    <meta name="description" content="传智健康">
    <meta name="keywords" content="传智健康">
    <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
    <!-- 引入样式 -->
    <link rel="stylesheet" href="../css/style.css">
    <script src="../plugins/echarts/echarts.js"></script>
    <link rel="stylesheet" href="../plugins/elementui/index.css">

</head>
<body class="hold-transition">
<div id="app">
    <div class="content-header">
        <h1>统计分析<small>会员数量</small></h1>
        <el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
            <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
            <el-breadcrumb-item>统计分析</el-breadcrumb-item>
            <el-breadcrumb-item>会员数量</el-breadcrumb-item>
        </el-breadcrumb>
    </div>
    <div class="app-container">
        <div class="box">
            <template>
                <div class="block">
                    <span class="demonstration">日期</span>
                    <el-date-picker
                            v-model="value1"
                            type="datetimerange"
                            range-separator="至"
                            start-placeholder="开始日期"
                            end-placeholder="结束日期"
                            unlink-panels
                            align="right">
                    </el-date-picker>
                    <el-button type="primary" @click="query">查询</el-button>
                </div>
            </template>
            <!-- 为 ECharts 准备一个具备大小（宽高）的 DOM -->
            <div id="chart1" style="height:600px;"></div>


        </div>
        <div class="app-container">
            <div class="box">
                <!-- 为 ECharts 准备一个具备大小（宽高）的 DOM -->
                <div id="chart2" style="height:600px;"></div>
            </div>
            <div class="box">
                <!-- 为 ECharts 准备一个具备大小（宽高）的 DOM chart3展示会员性别统计-->
                <div id="chart3" style="height:500px;"></div>
            </div>
        </div>
    </div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript">
    // axios跨域访问，如果需要携带cookie，withCredentials必须为true
    axios.defaults.withCredentials = true;

    new Vue({
        el: '#app',
        data: {
            value: [],
            memberOption: {
                title: {
                    text: "会员数量",
                },
                tooltip: {},
                legend: {
                    data: ["会员数量"],
                },
                xAxis: {
                    data: ["2018.01", "2018.02", "2018.03", "2018.04"],
                },
                yAxis: {
                    type: "value",
                },
                series: [
                    {
                        name: "会员数量",
                        type: "line",
                        data: [13, 14, 28, 30],
                    },
                ],
            },
        },
        data(){
            return {
                value1:[new Date(),new Date()],
                value2:[],
            }
        },

        methods:{
            query: function () {
                var myChart1 = echarts.init(document.getElementById('chart1'))
                let date01 = this.value1[0]
                let date02 = this.value1[1]
                var param = {
                    'starttime': date01,
                    "endtime": date02
                }
                myChart1.setOption(memberOption)
                axios.get("http://localhost:9002/report/getMemberReportMonth", {params:param}).then((response) => {
                    if(response.data.flag){
                        //请求成功
                        memberOption.xAxis.data= response.data.data.months;
                        memberOption.series[0].data = response.data.data.memberCount;

                        myChart1.clear();
                        myChart1.setOption(memberOption);
                    }else{
                        //请求失败
                        this.$message.error(response.data.message);
                    }
                }).catch((error)=>{
                    console.log(error);
                    this.$message.error("网络异常");
                });
            }
        }
    });
    // 基于准备好的dom，初始化echarts实例
    var myChart1 = echarts.init(document.getElementById('chart1'));

    // 使用刚指定的配置项和数据显示图表。
    var memberOption = {
        title: {
            text: '会员数量'
        },
        tooltip: {},
        legend: {
            data:['会员数量']
        },
        xAxis: {
            data: ["2018.01","2018.02","2018.03","2018.04"]
        },
        yAxis: {
            type:'value'
        },
        series: [{
            name: '会员数量',
            type: 'line',
            data: [13,14,28,30]
        }]
    };
    myChart1.setOption(memberOption);
    //后台需要返回近12个月的会员统计数据
    axios.get("http://localhost:9002/report/getMemberReport").then((res)=>{
        if (res.data.flag){
            //myChart1.setOption();
            memberOption.xAxis.data = res.data.data.months;
            memberOption.series[0].data = res.data.data.memberCount;
            myChart1.clear();
            myChart1.setOption(memberOption);
        }
    });

    var myChart3 = echarts.init(document.getElementById('chart3'));

    axios.get("http://localhost:9002/report/getMemberSex").then((res)=>{
        myChart3.setOption({
            title : {
                text: '会员性别对比',
                subtext: '',
                x:'center'
            },
            tooltip : {//提示框组件
                trigger: 'item',//触发类型，在饼形图中为item
                formatter: "{a} <br/>{b} : {c} ({d}%)"//提示内容格式
            },
            legend: {
                orient: 'vertical',
                left: 'left',
                /*data: res.data.data.memberSex*/
            },
            series : [
                {
                    name: '会员性别对比',
                    type: 'pie',
                    radius : '55%',
                    center: ['50%', '60%'],
                    data:res.data.data.memberSex,
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        });
    });


    var myChart2 = echarts.init(document.getElementById('chart2'));

    // 使用刚指定的配置项和数据显示图表。
    //myChart.setOption(option);

    axios.get("http://localhost:9002/report/getMemberAge").then((res)=>{
        myChart2.setOption({
            title : {
                text: '会员数量年龄占比',
                subtext: '',
                x:'center'
            },
            tooltip : {//提示框组件
                trigger: 'item',//触发类型，在饼形图中为item
                formatter: "{a} <br/>{b} : {c} ({d}%)"//提示内容格式
            },
            legend: {
                orient: 'vertical',
                left: 'left',
                data: res.data.data.memberAges
            },
            series : [
                {
                    name: '会员数量年龄占比',
                    type: 'pie',
                    radius : '55%',
                    center: ['50%', '60%'],
                    data:res.data.data.memberCount,
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        });
    });
</script>
</html>